define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

    var Controller = {
        index: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    index_url: 'user/user/index',
                    add_url: 'user/user/add',
                    edit_url: 'user/user/edit',
                    del_url: 'user/user/del',
                    multi_url: 'user/user/multi',
                    table: 'user',
                }
            });
            var table = $("#table");
            // 初始化表格
            table.bootstrapTable({
                url: $.fn.bootstrapTable.defaults.extend.index_url,
                pk: 'id',
                sortName: 'user.id',
                columns: [
                    [
                        {checkbox: true},
                        {field: 'id', title: __('Id'), sortable: true},
                        {field: 'venue.name', title: __('所属场馆'),operate:false},
                        {field: 'venue_id', title: __('所属场馆'),addclass: 'selectpage', extend:'data-source="ajax/venue"', defaultValue:Config.vid, visible:false,},
                       /* {field: 'group.name', title: __('Group')},*/
                        {field: 'username', title: __('Username'), operate: 'LIKE',
                            formatter:function(value,row,index){
                                url = "order/index?user_id=" + row.id;
                               // url = "example/bootstraptable?" + this.field + "=" + value;

                                //方式一,直接返回class带有addtabsit的链接,这可以方便自定义显示内容
                                return '<a href="' + url + '" class="label label-success addtabsit" title="' + __("Search %s", value) + '">' + __('查看订单 %s', value) + '</a>';
                                //return '<a href="' + url + '" class="label label-success addtabsit" title="' + __("Search %s", row.id) + '">' + __('Search %s', row.id) + '</a>';

                                //方式二,直接调用Table.api.formatter.addtabs
                                //this.url = url;
                                //return Table.api.formatter.addtabs.call(this, value, row, index);
                            }
                        },
                       /* {field: 'nickname', title: __('Nickname'), operate: 'LIKE'},*/
                        /*{field: 'email', title: __('Email'), operate: 'LIKE'},*/
                        {field: 'mobile', title: __('Mobile'), operate: 'LIKE'},
                        {field: 'money', title: __('储值金'), operate:'BETWEEN'},
                        {field: 'avatar', title: __('Avatar'), events: Table.api.events.image, formatter: Table.api.formatter.image, operate: false},
                       /* {field: 'level', title: __('Level'), operate: 'BETWEEN', sortable: true},*/
                        {field: 'gender', title: __('Gender'), visible: false, searchList: {1: __('Male'), 0: __('Female')}},

                        /*{field: 'score', title: __('Score'), operate: 'BETWEEN', sortable: true},
                        {field: 'successions', title: __('Successions'), visible: false, operate: 'BETWEEN', sortable: true},
                        {field: 'maxsuccessions', title: __('Maxsuccessions'), visible: false, operate: 'BETWEEN', sortable: true},
                        {field: 'logintime', title: __('Logintime'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},
                        {field: 'loginip', title: __('Loginip'), formatter: Table.api.formatter.search},*/
                        {field: 'jointime', title: __('Jointime'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},
                        {field: 'label', title: __('标签'), operate: 'LIKE', formatter:function(value,row,index){
                                            if(value){
                                                return '<div style="white-space: pre-wrap;">'+value+'</div>';
                                            }
                                        }},
                        {field: 'image', title: __('明星图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
                       /* {field: 'joinip', title: __('Joinip'), formatter: Table.api.formatter.search},*/
                        {
                            field: 'star',
                            title: __('Star'),
                            align: 'center',
                            table: table,
                            sortable: true,
                            searchList: {"0": __('Star 0'), "1": __('Star 1')},
                            formatter: Table.api.formatter.toggle
                        },
                        {
                            field: 'coach',
                            title: __('Coach'),
                            align: 'center',
                            table: table,
                            sortable: true,
                            searchList: {"0": __('Coach 0'), "1": __('Coach 1')},
                            formatter: Table.api.formatter.toggle
                        },
                        {field: 'status', title: __('Status'), formatter: Table.api.formatter.status, searchList: {normal: __('Normal'), hidden: __('Hidden')}},
                        {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                    ]
                ],

                // responseHandler: function(data){
                //     console.log(data)
                //     var arr = data.rows;
                //     var resultArr;
                //     resultArr = arr.filter(function (item, index, self) {
                //         return item.venue_id == 1;
                //     });
                //     return {
                //         rows: resultArr,
                //         total: resultArr.length
                //     }
                //
                //     console.log(resultArr);
                // }

            });

            // function vid(){
            //     $.ajax({
            //         async: false,
            //         url: 'ajax/vid',
            //         type: 'get',
            //         data: '',
            //         dataType: 'json',
            //         success: function (res) {
            //             return res.data
            //         }
            //     });
            // };
            // alert(vid());
            // 为表格绑定事件
            Table.api.bindevent(table);
        },
        add: function () {
            Controller.api.bindevent();
        },
        edit: function () {
            Controller.api.bindevent();
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    };
    return Controller;
});